Virtual keypad systems and methods

ABSTRACT

Accordingly, a virtual keypad system for inputting text is provided. A virtual keypad system includes a remote controller having at least one touchpad incorporated therein and divided into a plurality of touch zones. A display device is in data communication with the remote controller and is operable to display a user interface including a keypad, where each key of the keypad is mapped to a touch zone of the touchpad. A prediction module, in response to an operator pressing a given touch zone to select a particular character, performs one or more key prediction methods to predict one or more next plausible keys. A key mapping module remaps the touch zones of the touchpad to the keys of the keypad based on the one or more next plausible keys.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. patent applications Nos.60/946858 and 11/977346, filed on Jun. 28, 2007 and Oct. 24, 2007,respectively. The disclosures of the above applications are incorporatedherein by reference.

FIELD

The present invention relates to methods and systems for recognizingtext input from a remote controller.

BACKGROUND ART

Many electronic consumer products come with remote control devices.These remote control devices can communicate a variety of commands tothe electronic product. With the rise in technological advancements tothe electronic products, the remote control devices have become complexto operate. For example, modern television remote controls can includeselection buttons for volume, channel selection, menu selection, andpicture viewing. To operate the remote control, the user must take timeaway from the program he or she is watching to focus in on the buttons.This can be very distracting to a viewer.

In addition, many Internet based services such as online shopping arenow being provided through the television. Additional selection buttonssuch as keypad buttons must be included on the remote control device toaccommodate these new services. The new selection buttons serve toincrease the complexity as well as the cost of the remote controldevices. Various solutions have been proposed to address such problems.One solution is disclosed in U.S. Pat. No. 6,765,557 to use a touchpadfor controlling a home entertainment device such as an Interactivetelevision. However, even this solution cannot completely solve theproblems of inconveniency to the user inconvenience.

The statements in this section merely provide background informationrelated to the present disclosure and may not constitute prior art.

SUMMARY

A virtual keypad system for inputting text is provided. A virtual keypadsystem includes a remote controller having at least one touchpadincorporated therein and divided into a plurality of touch zones. Adisplay device is in data communication with the remote controller andis operable to display a user interface including a keypad, where eachkey of the keypad is mapped to a touch zone of the touchpad. Aprediction module, in response to an operator pressing a given touchzone to select a particular character, performs one or more keyprediction methods to predict one or more next plausible keys. A keymapping module remaps the touch zones of the touchpad to the keys of thekeypad based on the one or more next plausible keys.

Further areas of applicability will become apparent from the descriptionprovided herein. It should be understood that the description andspecific examples are intended for purposes of illustration only and arenot intended to limit the scope of the present disclosure.

BRIEF DESCRIPTION OF DRAWINGS

The drawings described herein are for illustration purposes only and arenot intended to limit the scope of the present teachings in any way.

FIG. 1 is an illustration of a text input system according to variousaspects of the present disclosure.

FIG. 2A is an illustration of a remote controller of the text inputsystem of FIG. 1 that includes a touchpad according to various aspectsof the present disclosure.

FIG. 2B is a block diagram illustrating internal components of theremote controller of FIG. 2A according to various aspects of the presentdisclosure.

FIG. 3 is a dataflow diagram illustrating a virtual keypad module of thetext input system of FIG. 1 according to various aspects of the presentdisclosure.

FIG. 4A is an illustration of the remote controller being held in aportrait position according to various aspects of the presentdisclosure.

FIG. 4B is an illustration of the remote controller being held in alandscape position according to various aspects of the presentdisclosure.

FIG. 5 is a table illustrating a mapping between XY coordinates of thetouchpad and keys of a keypad.

FIG. 6 is a table illustrating a remapping between the coordinates ofthe touchpad and the keys of a keypad.

FIG. 7 is an illustration of a first embodiment of a virtual keypadgraphical user interface according to various aspects of the presentdisclosure.

FIG. 8A is an illustration of a second embodiment of a virtual keypadgraphical user interface according to various aspects of the presentdisclosure.

FIG. 8B is an illustration of a third embodiment of a virtual keypadgraphical user interface according to various aspects of the presentdisclosure.

FIG. 9 is an illustration of a fourth embodiment of a virtual keypadgraphical user interface according to various aspects of the presentdisclosure.

FIG. 10 is an illustration of a fifth embodiment of a virtual keypadgraphical user interface according to various aspects of the presentdisclosure.

DETAILED DESCRIPTION

The following description is merely exemplary in nature and is notintended to limit the present teachings, their application, or uses. Itshould be understood that throughout the drawings, correspondingreference numerals indicate like or corresponding parts and features. Asused herein, the term module or sub-module can refer to a processor(shared, dedicated, or group) and memory that executes one or moresoftware or firmware to programs, and/or other suitable components thatcan provide the described functionality and/or combinations thereof.

Referring now to FIG. 1, FIG. 1 depicts an exemplary text input system10 implemented according to various aspects of the present disclosure.The exemplary text input system 10 includes a virtual keypad module 12that facilitates the input of alphanumeric characters by a user forinteracting with various services delivered through a display device 14.The display device 14 can be, but is not limited to, a television (asshown), a projector and screen, or a computer. The services can be, forexample, internet based services such as, online shopping and moviesubscriptions. The virtual keypad module 12 provides feedback to theuser via a graphical user interface (GUI) 18. The GUI 18 includes avirtual keypad 20, as will be discussed in more detail below.

In various embodiments, the virtual keypad module 12 can be implementedwithin the display device 14. In various other embodiments, the virtualkeypad module 12 can be implemented separate from the display device 14(such as, for example, on a set top box (not shown)) and can be in datacommunication with the display device 14. For ease of the discussion,the remainder of the disclosure will be discussed in the context of thevirtual keypad module 12 being implemented within the display device 14.

The text input system 10 further includes a remote controller 16 thatgenerates one or more signals to the display device 14 in response touser input. The virtual keypad module 12 receives and processes thesignals. Based on the signals, the virtual keypad module 12 determinesan orientation and a holding position of the remote controller 16,recognizes text input, and/or provides visual feedback to the user via agraphical user interface (GUI) 18. In particular, the virtual keypadmodule 12 implements selection auto-correction methods that compensatefor human typing (i.e., clicking) error. For example, when attempting toinput text quickly, users can typically undershoot or overshoot thelocation and click on a nearby unintended key. The virtual keypad module12 employs a combination of prediction and auto-correction methods todetermine which character(s) is/are most likely to be entered by theuser.

In one example, provided fast input speeds, a prediction method is usedto compensate for the possible overshoot and undershoot. As will bediscussed in more detail below, the predictions can be used to enlargean activation area of possible keys while reducing (or zero-ing)activation areas of keys that are not in the next-character predictionlist. However, if the prediction methods are unable to generate aprediction, even at fast input speeds, the virtual keypad module 12disables the selection auto-correction methods and reverts to a defaultmode (i.e., without enlarging or reducing the activation area). Thevirtual keypad module 12 can also disable the selection auto-correctionmethod when the interaction becomes slow because it is assumed thatclicking errors do not generally occur during slow interaction.

FIGS. 2A and 2B illustrate an exemplary remote controller 16 accordingto various aspects of the present disclosure. As shown in FIG. 2A, theexterior of the remote controller 16 includes a touchpad 22 and one ormore soft keys 24 a-24 d. In various embodiments, touch zones defined byone or more coordinates of the touchpad 22 can be mapped to a particularkey of the virtual keypad 20 (FIG. 1).

A user can select a particular key of the virtual keypad 20 by gentlyplacing his finger or thumb on the touchpad 22 at or near the associatedtouch zone (FingerDown event), by dragging a finger or thumb along thetouchpad 22 to the associated touch zone (FingerDrag event), and/or bylifting the finger or thumb away from the touchpad 22 (FingerUp event).While the user has a finger or thumb on the touchpad 22 (i.e., betweenFingerDown and FingerUp events), the user can click on the touchpad 22by applying greater force (FingerPress event) followed by releasing theforce (FingerRelease event) to select a key.

In various other embodiments, a relative access method can be used as analternative or as a secondary method for selecting keys. The relativeaccess method assumes a position of the user's finger or thumb to be acurrent coordinate or touch zone of the touchpad 22. Subsequent gesturesby the user are then interpreted relative to that coordinate or touchzone. This allows for an adjustable precision in selection.

Important functions of the remote controller 16 (such as, for example,volume, channel, and mute) can be associated with specific selectionbuttons 26 a-26 d of the touchpad 22. The selection buttons 26 a-26 dcan be designated by a specific touchpad button that is painted orilluminated on the touchpad 22 (as shown) or by a button displayed on anoverlay to the virtual keypad 20 (FIG. 1) of the GUI 18 (FIG. 1). Thisallows the user to use the remote controller 16 in complete darknesswithout having to look away from the content being displayed on thedisplay device 14 (FIG. 1).

The functions can be controlled by simply touching the buttons or becontrolled by performing a specific gesture. In one example, sliding afinger or thumb up or down on the right side of the touchpad 22 cantrigger a volume up or volume down action. In another example, sliding afinger or thumb right or left on the top side of the touchpad 22 cantrigger a channel up or channel down action.

In various embodiments, the body of the remote controller 16 can be madeof a soft material, allowing the remote controller 16 to be squeezed.The squeezing of the remote controller 16 can be performed by the userto trigger certain actions, particularly in contexts where the GUI 18(FIG. 1) is just waiting for an acknowledgement without proposing achoice (such as a “next” button in a slideshow).

As shown in FIG. 2B, the internal components of the remote controller 16can include, but are not limited to, input sensors 30, output actuators32, an input controller 34, an output controller 36, a processinghandler 38, a wireless transmitter (e.g., RF, Bluetooth, etc.) 40,and/or combinations thereof. The following describes operationsperformed by the sensors including the input sensors 30. The inputssensors 30 can include touchpad sensors 42. The touchpad sensors 42 canbe single-position registering touchpad sensors mounted side-by-sidethat allow for the selection of at least two contact points on thetouchpad 22 (FIG. 2A) simultaneously. Alternatively, the touchpadsensors 42 can be a single multi-touch capable touchpad sensor that canregister, with equal precision, two points of contact at the same time.In various embodiments, the touchpad sensors 42 can register pressureinformation to allow the touchpad 22 (FIG. 2A) to be clickable.

The input sensors 30 can also include one or more selection buttonsensors 44, one or more touchpad button sensors 46, one or moreaccelerometers 48, and one or more holding sensors 50. The holdingsensors 50 can be, for example, capacitive sensors that are locatedaround the border of the remote controller 16, and/or behind the remotecontroller 16. The holding sensors 50 indicate whether the user istouching an area of the remote controller 16 in a proximity of theholding sensor 50. The accelerometer 48 can be a three-axisaccelerometer that indicates a positioning of the remote controller 16.The input controller 34 reads the real-time data from all activesensors. In various embodiments, some sensors may not be active at alltimes to reduce power consumption. The processing handler 38 gathers andforms into packets the data to be transmitted and/or processes thereal-time data from one or more active sensors to perform local actions.The RF transmitter 40 (RF driver 40) generates the signals in packetform to the display device 14 (FIG. 1).

The output actuators 32 can include one or more LED panels 52 fordisplaying the touchpad buttons 26 a-26 d, depending on the specificstate of interaction with the GUI 18 present on-screen. The outputactuators 32 can additionally or alternatively include actuators forproviding sufficient haptic feedback to the user (such as, for example,vibration actuators 54, light actuators 55, and/or speaker actuators56). The above has described one example of the operations performed bythe output actuator 32. The output controller 36 updates the state ofall the active actuators.

Referring now to FIG. 3, a dataflow diagram illustrates a more detailedexemplary virtual keypad module 12. Various embodiments of the virtualkeypad module 12 according to the present disclosure may include anynumber of sub-modules. As can be appreciated, the sub-modules shown inFIG. 3 may be combined and/or further partitioned to similarly performtext input. The data inputs 70, 72, 74, and 76 to the virtual keypadmodule 12 are received from the remote controller 16 (FIG. 1) and/orreceived from other modules (not shown) within the display device 14(FIG. 1). In various embodiments, the virtual keypad module 12 includesan orientation recognition module 60, a hand position recognition module62, a prediction module 64, a key input module 66, a key mapping module67, and a GUI manager module 68. The following describes one example ofoperations performed by each module. The orientation recognition module60 determines an orientation of the remote controller 16 based on datareceived from the holding sensors 50 (FIG. 2B) and the accelerometer 48(FIG. 2B). For example, the user can be holding the remote controller 16(FIG. 2A) in a portrait position, as shown in FIG. 4A, or in a landscapeposition, as shown in FIG. 4B. In various embodiments, the orientationrecognition module 60 determines the orientation by way of an ArtificialNeural Network (ANN). The ANN can be trained by data indicating bothlandscape position conditions and portrait position conditions.

In one example, the orientation is determined by training an ANN withsensory data. The sensory data can comprise three-dimensionalacceleration (accx, accy, accz) and an activation state of the ncapacitive holding position sensors, which can signal that human skin isever in proximity (1) or is not in proximity (0). These n+3 values arefed into a single perceptron or linear classifier to determine if theremote controller 16 (FIG. 2A) is horizontal or vertical. Perceptroncoefficients can be trained on a database and hard-coded by amanufacturer. The hand position recognition module 62 determines aholding style of the remote controller 16 (FIG. 2A) based on datareceived from the holding sensors 50 (FIG. 2B) and the accelerometer 48(FIG. 2B). For example, the sensory data 70, 72 can be used to determinewhether the remote controller 16 (FIG. 2A) is held with one or twohands; and if it is held with one hand, whether it is held with the leftor right hand. In various embodiments, the hand position recognitionmodule 62 determines the holding style by way of an ANN. The ANN can betrained by data indicating right-hand conditions, left-hand conditions,and two hands conditions.

In one example, the hand position is determined similarly as discussedabove. Multiple perceptrons can be implemented for the more than onebinary decisions (e.g., left hand, right hand, two handed).

As will be discussed in more detail below, the determination of theorientation and the holding style gives the virtual keypad module 12 theability to accommodate the user by automatically adapting the text inputmethods and the look and feel of the GUI 18 (FIG. 1). Thus, thedetermination of the orientation and holding position allows the user tohold the remote controller 16 (FIG. 2A) in the most convenient way basedon their personal preference and the actual conditions of use (e.g.,standing, sitting, lying down). In the case of operating the remotecontroller 16 (FIG. 2A) in a dark room, the user can pick up and operatethe remote controller 16 (FIG. 2A) without worrying about how they areholding it.

The hand position recognition module 62 can further perform userverification based on a combination of holding sensor data 70,accelerometer data 72, additional sensor information (such as an imageof the palm of the user's hand), and/or bio-sensors. The data can beused to fully determine the identity of the user or, more broadly, inferthe category to which the user belongs (e.g., left-handed, right-handed,kid, adult, elderly). User identification can be used, for example, forparental control, personalization, and profile switching. Usercategorization can be used to adapt the GUI 18 (FIG. 1).

The key mapping module 67 generates a map indicating an associationbetween the coordinates or touch zones of the touchpad 22 (FIG. 2A) andthe keys of the keypad and/or touchpad selection buttons. In variousembodiments, the key mapping module 67 generates the map based on theorientation and hand position information determined from theorientation recognition module 60 and the hand position recognitionmodule 62, respectively. The key mapping module 67 maps the touch zonesof the touchpad 22 to the keys of the keypad, by associating a key ofthe keypad to each XY coordinate of the touch zones. Here, the touchzones are defined by one or more XY coordinates of the touchpad 22. Thekey mapping module 67 generates a map from the mapping. Here, the map isa two-dimensional lookup table defined by the coordinates of thetouchpad 22. For example, as shown in FIG. 5, the map can be a twodimensional (XY) table 80 that is used to assign a key of the keypadand/or a touchpad selection button to each coordinate of the touchpad 22(FIG. 2A). As will be discussed in more detail below, the map can thenbe referenced by the key input module 66 to determine an action to betaken and can be referenced by the GUI manager module 68 to generate theGUI 18 (FIG. 1).

Referring back to FIG. 3, the key input module 66 processes touchpadsensor data 74 and/or the accelerometer data 72. In various embodiments,the key input module 66 interprets the touchpad sensor data 74 to be acoordinate or coordinates of the touchpad 22 (FIG. 2A) and determineswhat action to be taken based on the coordinate or coordinates. Forexample, the key input module 66 can receive the touchpad sensor data74, determine a particular coordinate from the data 74, and referencethe map generated by the key mapping module 67. Based on the entries inthe map, the key input module 66, for example, can project that the useris hovering over a particular key of the keypad and, thus, entering aparticular text.

In various embodiments, the key input module 66 interprets theaccelerometer data 72 as an action to be taken. For example, theaccelerometer data 72 can indicate if a user has lifted the remotecontroller 16 (FIG. 2A) quickly to select, for example, an uppercasemode. The accelerometer data 72 can indicate when a user has lowered theremote controller 16 (FIG. 2A) quickly to select, for example, alowercase mode.

To enhance the precision and speed at which the text is entered, theprediction module 64 generates a prediction of which key and/or word theuser is trying to select. The prediction module 64 generates theprediction based on the touchpad sensor data 74 and/or based on adetermination of previous text entered. In various embodiments, theprediction module 64 performs one or more next key prediction methods,such as, for example, a language model method, a trajectory analysismethod, a hand movement analysis method, a timing analysis method,and/or combinations thereof. In short, the prediction module 64, inresponse to an operator pressing a given touch zone to select aparticular character, performs one or more key prediction methods topredict one or more next plausible keys. Examples of the operator are afinger of the user, a touch-pen, and the like, that operates thetouchpad 22.

In one example, the prediction module 64 employs one or more languagemodels known in the art to predict the next key based on previous textentered. The language models, for instance, predict the one or more nextplausible keys based on previous characters selected by the operator.For example, if the partial word ‘pr’ has been entered, the languagemodel can predict that a vowel is likely to follow and that the letter‘r’ will not be a possibility.

In another example, the prediction module 64 employs one or morelanguage models to provide a list of reliable candidates of full wordsfrom partial word inputs. In this case, the language model generates alist of plausible words based on the previous characters selected by theoperator. The full words can be selected by the user forauto-completion. For example, if the partial word ‘Pan’ has beenentered, a list can be generated that includes ‘Panasonic’ and‘Pan-American.’ Instead of typing the remaining characters, the user cansimply select one of the full words.

In various embodiments, the language model can generate the wordpredictions based on words previously entered. For example, onceselected, the words can be remembered and the language model can beadapted to favor the remembered words.

In yet another example, the trajectory analysis method can be performedto predict possible next keys based on future path estimation includingdirections and/or velocities of user's finger or thumb movement on thetouchpad 22 (FIG. 2A) as indicated by the touchpad sensor data 74. Thetrajectory analysis method predicts next plausible keys based on adirection of operator movement on the touchpad 22. For example, if theuser first selects the ‘k’ key and the language model predicts that thenext key can be one of ‘I,’ ‘e,’ or ‘a,’ the touchpad sensor data 74 canbe evaluated to determine a direction the user is heading and velocityof the movement and, thus, eliminate one or more of the choices.

For example, the trajectory analysis method determines a coordinate ofthe key ‘k’ and subsequent finger movements. From that history of XYcoordinates, the future path is determined. The path includes atolerance to account for short-term prediction (more accurate) andlonger-term prediction (less accurate). If the future path estimation isheading away from the coordinates of the predicted key, the choice iseliminated. For example, if the path is heading on an Up/Left diagonalline, then the keys ‘e’ and ‘a’ are eliminated and the key ‘I’ isselected as the predicted next key.

In another example, the hand movement analysis method can be performedusing the holding style information provided by the hand positionrecognition module 62 and the predictions provided by the predictionmodule 64. The hand movement analysis method predicts next plausiblekeys based on a detection of which hand is moving on the touchpad 22.The hand movement analysis method can evaluate whether the remotecontroller 16 (FIG. 2A) is held with two hands or one hand. If theremote controller 16 (FIG. 2A) is held by two hands and movement by aright hand or left hand is detected, then the choices that areassociated with the non-moving hand would be eliminated.

For example, if the user first selects the ‘k’ key, the predictionmodule 64 predicts that the next key can be one of ‘e,’ or ‘a,’ andmovement is detected by the right hand, then the keys ‘e’ and ‘a’ areeliminated and the key ‘I’ is selected as the predicted next key.

In yet another example, the timing analysis method can be performed whenthe prediction module 64 is unable to predict the appropriate next keyor word via any of the next key prediction methods. Such may be the casewhen the user is entering proper nouns, such as a last name or apassword. The timing analysis method evaluates the time the user takesto move from one key to the next. That is, the timing analysis methodpredicts next plausible keys based on a timing of operator movement onthe touchpad 22. In more detail, the timing analysis method predicts nonext plausible keys when the timing exceeds a predetermined limit. Here,the key mapping module 67 remaps the touch zones of the touchpad 22 tothe keys of the keypad based on the no next plausible keys. If the usermoves more slowly, it is more likely that a proper noun is beingentered. The predictions are then ignored.

Based on the predictions provided by the prediction module 64, the keymapping module 67 can remap the coordinates of the touchpad 22 (FIG. 2A)to the keys of the virtual keypad 20 (FIG. 1). That is, the key mappingmodule 67 remaps the touch zones of the touchpad 22 to the keys of thekeypad based on the one or more next plausible keys predicted by theprediction module 64. In various embodiments, the coordinates that areassociated with the predicted next key can be expanded to make the keymore accessible. For example, as shown in FIG. 6, if the predicted nextkey is ‘p,’ the map can be adjusted such that the coordinates that werepreviously mapped to the keys ‘o’ or ‘I’ are now mapped to the key ‘p.’Thus, if the user is actually hovering over the ‘I’ key, the ‘p’ keywill be selected and entered if the user clicks on the touchpad 22 (FIG.2A).

Referring back to FIG. 3, in various embodiments, the key mapping module67 can remap the coordinates to the keys based on a relative speed ofthe user movement. For example, the key mapping module 67 can remap thecoordinates such that the predicted key is mapped to a larger touch zonearea when a faster movement is detected. The key mapping module 67 canmaintain the original coordinates or remap to the original coordinateswhen slower movements are detected. The key mapping module 67 can scalethe area between the larger area and the original area when a movementthat is not fast or slow is detected.

The GUI manager module 68 generates GUI data 76 for displaying the GUI18. The GUI 18 provides visual feedback to the user indicating theactions they have performed with the remote controller 16 (FIG. 2A). Asshown in the exemplary GUIs 18 of FIGS. 7 through 10, the GUI 18 caninclude the virtual keypad 20, including multiple alphanumeric keys 90,one or more selection buttons 92, a selection list 94, a text displaybox 96, a title bar 98, and/or combinations thereof.

As discussed further below, the touchpad 22 is divided into twooperating zones (a first operating zone and a second operating zone).The key mapping module 67 maps a first subset of keys of the keypad tothe first operating zone of the touchpad 22 and maps a second subset ofkeys of the keypad to the second operating zone of the touchpad 22. Forexample, the first operating zone corresponds to a top zone or a rightzone of the touchpad 22, and the second operating zone corresponds to abottom zone or a left zone of the touchpad 22. Here, each of the firstsubset and the second subset is a group of keys of the keypad. Invarious embodiments, the GUI manager module 68 displays the virtualkeypad 20 based on the holding position and the orientation determinedby the hand position recognition module 62 and the orientationrecognition module 60, respectively. For example, as shown in FIG. 7, iftwo hands are used to hold the remote controller 16 (FIG. 2A) in thelandscape position, the virtual keypad 20 and the touchpad 22 can bedivided into two zones 100, 102 (e.g., left and right). The keys in theright zone 102 can be associated with a first zone 104 of the touchpad22, and the keys in the left zone 100 can be associated with a secondzone 106 of the touchpad 22. The user can select a key 90 in the rightzone 102 with a right thumb or finger, and the user can select a key 90in the left zone 100 with a left thumb or finger. The keys 90 in eachzone 100, 102 can be distinguished by a particular color or shading ofthe keys 90 so that the user can determine which keys 90 can be selectedwith which thumb or finger. This will allow for a natural text input,similar to the experience when entering text on classic keyboards.

In this example, selection of a predicted word (auto-completion) can bemade through the display of the two most probable words (e.g.,‘Panasonic,’ ‘Pan-America’). The selection buttons 92 areauto-completion selection buttons. When the user selects one of theselection buttons 92, a probable word displayed in the selectedselection button 92 is displayed as a complete word on the display box96. For example, the two words can be displayed on selection buttons 92.The user can select the selection buttons 92 by pushing soft keys 24 b,24 d located on the top side of the remote controller 16 with the indexfingers, or by dragging the finger or thumb to a dedicated zone locatedat a designated location of the touchpad 22.

In various embodiments, when the touchpad 22 and the virtual keypad 20are divided into two zones, the mapping of the coordinates can providefor an overlap between the two areas. The key mapping module 67 maps athird subset of keys of the first subset of keys to the second operatingzone and maps a fourth subset of keys of the second subset of keys tothe first operating zone. For instance, the third subset of keys includethe keys designated by the letters ‘t,’ ‘g,’ and ‘b’ of the keys of thefirst subset (keys included in the zone 100 of FIG. 7). Likewise, thefourth subset of keys include the keys designated by the letters ‘y,’‘h,’ and ‘n’ of the keys of the second subset (keys included in the zone102 of FIG. 7). That enables the keys along a boundary between thedivided zones to operate for any zones of the touchpad 22. For example,the letter ‘g’ in left keyboard area can be selected by the touchpad 22in the first zone, as well as be selected by the touchpad 22 in thesecond zone 106. The overlap keys can be identified on the GUI 18 byshading or color.

Referring now to FIGS. 8A and 8B, in another example, if two hands areused to hold the remote controller 16 in the landscape position, thetouchpad 22 can be divided into two zones 108, 110 or 112, 114. Thevirtual keypad 20, however, is not divided. A first zone 110 or 114 ofthe touchpad 22 can be associated with the entire virtual keypad 20, andcan be referred to as the “Key-Entry Zone.” The second zone 108 or 112of the touchpad 22 can be associated with the auto-completion buttons 92(FIG. 7) or selection lists 94 (auto-completion selection list), and canbe referred to as the “Auto-Completion Zone.” The auto-completionbuttons 92 or selection lists 94 can be displayed when the user touchesthe touchpad 22 in the “Auto-Completion Zone.” The user interface caninclude a small visual notification to signal the availability andstatus of auto-completion words. This way the user will not be botheredwith auto-completion unless he decides to use it.

In various embodiments, the zones 108, 110 or 112, 114 of the touchpad22 can be configured based on an identification of the user. Forexample, in the case of a right-handed user, the right zone 110 can beassociated with the “Key-Entry Zone” used most often and the left zone108 can be associated with the “Auto-Completion Zone.” Similarly, for aleft-handed user, the left zone 108 can be associated with the“Key-Entry Zone” used most often and the right zone 110 can beassociated with the “Auto-Completion Zone.”

Referring now to FIG. 9, in yet another example, if one hand is used tohold the remote controller 16 in the portrait position, the touchpad 22is divided into zones. The virtual keypad 20, however, is not dividedinto zones. Only one zone of the touchpad 22 is used by the user at alltimes. The user will be able to address the entire virtual keypad 20from the entire touchpad 22. Such touchpad 22 will principally functionas the “Key-Entry Zone.” If auto-completion is needed, the user canswitch the touchpad 22 to the “Auto-completion Zone” by using a simplegesture. Such gesture can include, but is not limited to, moving thethumb or finger to a specific area of the touchpad 22 (for instancelower right), or sliding the finger or thumb along the touchpad 22quickly from right to left.

In any of the examples shown in FIGS. 7 through 9, the user can select akey 90 by dragging the thumb or finger on the touchpad 22. In responseto the movement, one or more on-screen pointers (such as, for example, acursor, or an illustration of a thumb or finger) slides to a target key90. The on-screen pointers can be displayed according to the handposition (e.g., left hand only, right hand only, or both hands). The key90 can be selected by clicking the clickable touchpad 22 and/or uponrelease. When displaying a thumb or finger as the pointer, a differentthumb or finger posture can be used to indicate a thumb or finger pressas opposed to a thumb or finger that is dragged on the touchpad surface.The selected character associated with the key will be displayed in thetext display box 96.

Referring now to FIG. 10, in various embodiments, the GUI manager module68 displays the keys 90 of the virtual keypad 20 based on the predictednext key and the remapping of the coordinates performed by the keymapping module 67 (FIG. 3). For example, by knowing the next likely key,the GUI manager module 68 (FIG. 3) can highlight and/or enlarge the mostlikely key 116 based on the mapping of the coordinates. That is, anarrangement of the keypad on the user interface is modified based on theone or more next plausible keys predicted by the prediction module 64.In more detail, one or more keys of the keypad on the user interface ishighlighted or enlarged based on the one or more next plausible keyspredicted by the prediction module 64. These operations are performed bythe GUI manager module 68. However, when the user is not moving thecursor quickly or the user hovers over a given coordinate, thehighlighted and/or enlarged key 116 is remapped to the originalcoordinates of the touchpad 22 and the highlighted and/or enlarged keycan be resized back to the original size.

Those skilled in the art can now appreciate from the foregoingdescription that the broad teachings of the present disclosure can beimplemented in a variety of forms. Therefore, while this disclosure hasbeen described in connection with particular examples thereof, the truescope of the disclosure should not be so limited since othermodifications will become apparent to the skilled practitioner upon astudy of the drawings, specification, and the following claims.

1. A virtual keypad system for inputting text, comprising: a remotecontroller having at least one touchpad incorporated therein and dividedinto a plurality of touch zones; a display device in data communicationwith the remote controller and operable to display a user interfaceincluding a keypad, where each key of the keypad is mapped to a touchzone of the touchpad; a prediction module, in response to an operatorpressing a given touch zone to select a particular character, performsone or more key prediction methods to predict one or more next plausiblekeys; and a key mapping module remaps the touch zones of the touchpad tothe keys of the keypad based on the one or more next plausible keys. 2.The system of claim 1, wherein an arrangement of the keypad on the userinterface is modified based on the one or more next plausible keys. 3.The system of claim 2, wherein one or more keys of the keypad on theuser interface is enlarged based on the one or more next plausible keys.4. The system of claim 2, wherein one or more keys of the keypad on theuser interface is highlighted based on the one or more next plausiblekeys.
 5. The system of claim 1 further comprising a language modeloperable to predict the one or more next plausible keys based onprevious characters selected by the operator.
 6. The system of claim 5,wherein the language model is further operable to generate a list ofplausible words based on the previous characters selected by theoperator.
 7. The system of claim 1, wherein the one or more keyprediction methods includes a trajectory analysis method, where the nextplausible key is predicted based on a direction of operator movement onthe touchpad.
 8. The system of claim 1, wherein the one or more keyprediction methods includes a hand movement analysis method, where thenext plausible key is predicted based on a detection of which hand ismoving on the touchpad.
 9. The system of claim 1, wherein the touchpadis divided into two operating zones and wherein the key mapping modulemaps a first subset of keys of the keypad to a first operating zone ofthe touchpad and maps a second subset of keys of the keypad to a secondoperating zone of the touchpad.
 10. The system of claim 9, wherein thefirst operating zone corresponds to a top zone of the touchpad andwherein the second operating zone corresponds to a bottom zone of thetouchpad.
 11. The system of claim 9, wherein the first operating zonecorresponds to a right zone of the touchpad and wherein the secondoperating zone corresponds to a left zone of the touch pad.
 12. Thesystem of claim 1, wherein the user interface includes at least one ofauto-completion selection buttons and auto-completion selection list.13. The system of claim 12, wherein the touchpad is divided into twooperating zones and wherein the key mapping module maps a firstoperating zone to the keys of the keypad and maps a second operatingzone to the at least one of the of auto-completion selection buttons andauto-completion selection.
 14. The system of claim 9, wherein the keymapping module maps a third subset of keys of the first subset of keysto the second operating zone and maps a fourth subset of keys of thesecond subset of keys to the first operating zone.
 15. The system ofclaim 14, wherein the third subset of keys include the keys designated.by the letters ‘t,’ ‘g,’ and ‘b,’ and wherein the fourth subset of keysinclude the keys designated by the letters ‘y,’ ‘h,’ and ‘n.’
 16. Thesystem of claim 1, wherein the key prediction methods include a timinganalysis method, where the next plausible keys are predicted based on atiming of operator movement on the touchpad.
 17. The system of claim 16,wherein the timing analysis method predicts no next plausible keys whenthe timing exceeds a predetermined limit.
 18. The system of claim 17,wherein the key mapping module remaps the touch zones of the touchpad tothe keys of the keypad based on the no next plausible keys.
 19. Thesystem of claim 1, wherein the touch zones are defined by one or more XYcoordinates of the touchpad and wherein the key mapping module maps thetouch zones of the touchpad to the keys of the keypad by associating akey of the keypad to each XY coordinate of the touch zones.
 20. Thesystem of claim 19, wherein the key mapping modules generates a map fromthe mapping and wherein the map is a two-dimensional lookup tabledefined by the coordinates of the touchpad.
 21. A virtual keypad systemfor inputting text, comprising: a remote controller having at least onetouchpad incorporated therein and divided into a plurality of touchzones; a display device in data communication with the remote controllerand operable to display a keypad and an area for displaying input fromthe keypad, where each key on the keypad is associated with a touch zoneon the touchpad and, in response to an operator pressing a given touchzone, a character on the key correlating to the given touch zone isdisplayed in an input area of the display; a language model adapted toreceive characters displayed in the input area and operable to predictnext most plausible characters in string of received characters; and amodule that arranges the each key on the keypad for facilitating entryof a desired key based on output from the language model.
 22. The systemof claim 21, wherein the arranging comprises enlarging keys on thekeypad based on the output from the language model.
 23. A virtual keypadsystem for inputting text, comprising: a remote controller having atleast one touchpad incorporated therein and divided into a plurality oftouch zones; a display device in data communication with the remotecontroller and operable to display a user interface including a keypad,where each key of the keypad is mapped to a touch zone of the touchpad;a prediction module performs one or more key prediction methods topredict one or more next plausible keys; a key mapping module remaps thetouch zones of the touchpad to the keys of the keypad based on the oneor more next plausible keys; a user interface manager module modifies anarrangement of the keypad based on the remapping of the touch zones ofthe touchpad to the keys of the keypad; and a text input module, inresponse to an operator pressing a given touch zone, selects a key basedon the remapping of the touch zones of the touchpad to the keys of thekeypad.
 24. The system of claim 23, wherein the user interface managermodule enlarges one or more keys of the keypad based on the remapping ofthe touch zones of the touchpad to the keys of the keypad.